package com.itheima.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.controller.dto.RoleDto;
import com.itheima.entity.QueryPageBean;
import com.itheima.pojo.Role;

import java.util.List;

/**
 * @Description 角色服务接口
 * @Author makun
 * @Date 2023/9/27 10:35
 * @Version 1.0
 */
public interface RoleService extends IService<Role> {
    /**
     * 分页查询角色信息
     * @param queryPageBean
     * @return
     */
    Page<Role> findPage(QueryPageBean queryPageBean);

    /**
     * 根据角色ID查询该角色下所有的菜单ID
     * @param roleId
     * @return
     */
    List<Integer> getMenuIdsByRoleId(Integer roleId);

    /**
     * 编辑角色信息
     * @param role 角色基本信息
     * @param menuIdsOfRole 角色所关联的菜单ID
     * @return
     */
    boolean edit(Role role, Integer[] menuIdsOfRole);

    /**
     * 新增角色
     * @param role 角色基本信息
     * @param menuIdsOfRole 角色
     * @return
     */
    boolean save(Role role, Integer[] menuIdsOfRole);

    /**
     * 新增角色
     * @param roleDto
     * @return
     */
    boolean saveOne(RoleDto roleDto);

    /**
     * 编辑一个角色
     * @param roleDto
     * @return
     */
    boolean editOne(RoleDto roleDto);

    /**
     * 获取所有菜单
     * @param queryString
     * @return
     */
    List<Role> getAll(String queryString);
}
